//valgrind check
#include<stdio.h>
#include<stdlib.h>

/*
动态开辟存储单元的函数是 malloc, calloc
释放: void free(void *p);
*/

// void * malloc(unsigned int size); //在动态内存区中分配一个长度为size的 连续空间。
void demo1(){
	int i, arr[]={1,27,34};
	int *p=malloc( sizeof(int) * 3);
	for(i=0; i<3; i++){
		p[i]=arr[i];
		printf("1> %p %d->%d\n", p+i, i, *(p+i));
	}
    //释放内存
    free(p);
}

// void * calloc(unsigned n, unsigned int size); //在动态内存区中分配n个长度为size的 连续空间。
void demo2(){
    int len=5;
    int *p=calloc(len, sizeof(int));
    for(int i=0; i<len; i++){
        p[i]=i+100;
        printf("2> %p %d->%d\n", p+i, i, *(p+i));
    }
    //释放内存
    free(p);
}

int main(){
    demo1();
    demo2();
	return 0;
}
